home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / libast / str.h < prev    next >
C/C++ Source or Header  |  2005-10-18  |  6KB  |  105 lines

  1. /*
  2.  * Copyright (C) 1997-2004, Michael Jennings
  3.  *
  4.  * Permission is hereby granted, free of charge, to any person obtaining a copy
  5.  * of this software and associated documentation files (the "Software"), to
  6.  * deal in the Software without restriction, including without limitation the
  7.  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
  8.  * sell copies of the Software, and to permit persons to whom the Software is
  9.  * furnished to do so, subject to the following conditions:
  10.  *
  11.  * The above copyright notice and this permission notice shall be included in
  12.  * all copies of the Software, its documentation and marketing & publicity
  13.  * materials, and acknowledgment shall be given in the documentation, materials
  14.  * and software packages that this Software was used.
  15.  *
  16.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17.  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
  19.  * THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  20.  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  21.  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  22.  */
  23.  
  24. #ifndef _LIBAST_STR_H_
  25. #define _LIBAST_STR_H_
  26.  
  27. #define SPIF_STR(obj)                ((spif_str_t) (obj))
  28. #define SPIF_OBJ_IS_STR(obj)         (SPIF_OBJ_IS_TYPE(obj, str))
  29. #define SPIF_STR_ISNULL(s)           SPIF_OBJ_ISNULL(SPIF_OBJ(s))
  30.  
  31. #define SPIF_STR_NEW(type)           SPIF_STR((SPIF_CLASS(SPIF_CLASS_VAR(type)))->noo())
  32. #define SPIF_STR_INIT(obj)           SPIF_OBJ_INIT(obj)
  33. #define SPIF_STR_DONE(obj)           SPIF_OBJ_DONE(obj)
  34. #define SPIF_STR_DEL(obj)            SPIF_OBJ_DEL(obj)
  35. #define SPIF_STR_SHOW(obj, b, i)     SPIF_OBJ_SHOW(obj, b, i)
  36. #define SPIF_STR_COMP(o1, o2)        SPIF_OBJ_COMP(o1, o2)
  37. #define SPIF_STR_DUP(obj)            SPIF_OBJ_DUP(obj)
  38. #define SPIF_STR_TYPE(obj)           SPIF_OBJ_TYPE(obj)
  39.  
  40. #define SPIF_STR_STR(obj)            (SPIF_CONST_CAST(charptr) ((SPIF_STR_ISNULL(obj)) \
  41.                                                                 ? (SPIF_CAST(charptr) "") \
  42.                                                                 : (SPIF_STR(obj)->s)))
  43. typedef spif_int32_t spif_stridx_t;
  44.  
  45. SPIF_DECL_OBJ(str) {
  46.     SPIF_DECL_PARENT_TYPE(obj);
  47.     spif_charptr_t s;
  48.     SPIF_DECL_PROPERTY_C(spif_stridx_t, size);
  49.     SPIF_DECL_PROPERTY_C(spif_stridx_t, len);
  50. };
  51.  
  52. extern spif_class_t SPIF_CLASS_VAR(str);
  53. extern spif_str_t spif_str_new(void);
  54. extern spif_str_t spif_str_new_from_ptr(spif_charptr_t);
  55. extern spif_str_t spif_str_new_from_buff(spif_charptr_t, spif_stridx_t);
  56. extern spif_str_t spif_str_new_from_fp(FILE *);
  57. extern spif_str_t spif_str_new_from_fd(int);
  58. extern spif_str_t spif_str_new_from_num(long);
  59. extern spif_bool_t spif_str_del(spif_str_t);
  60. extern spif_bool_t spif_str_init(spif_str_t);
  61. extern spif_bool_t spif_str_init_from_ptr(spif_str_t, spif_charptr_t);
  62. extern spif_bool_t spif_str_init_from_buff(spif_str_t, spif_charptr_t, spif_stridx_t);
  63. extern spif_bool_t spif_str_init_from_fp(spif_str_t, FILE *);
  64. extern spif_bool_t spif_str_init_from_fd(spif_str_t, int);
  65. extern spif_bool_t spif_str_init_from_num(spif_str_t, long);
  66. extern spif_bool_t spif_str_done(spif_str_t);
  67. extern spif_str_t spif_str_show(spif_str_t, spif_charptr_t, spif_str_t, size_t);
  68. extern spif_cmp_t spif_str_comp(spif_str_t, spif_str_t);
  69. extern spif_str_t spif_str_dup(spif_str_t);
  70. extern spif_classname_t spif_str_type(spif_str_t);
  71.  
  72. extern spif_bool_t spif_str_append(spif_str_t, spif_str_t);
  73. extern spif_bool_t spif_str_append_char(spif_str_t, spif_char_t);
  74. extern spif_bool_t spif_str_append_from_ptr(spif_str_t, spif_charptr_t);
  75. extern spif_cmp_t spif_str_casecmp(spif_str_t, spif_str_t);
  76. extern spif_cmp_t spif_str_casecmp_with_ptr(spif_str_t, spif_charptr_t);
  77. extern spif_bool_t spif_str_clear(spif_str_t, spif_char_t);
  78. extern spif_cmp_t spif_str_cmp(spif_str_t, spif_str_t);
  79. extern spif_cmp_t spif_str_cmp_with_ptr(spif_str_t, spif_charptr_t);
  80. extern spif_bool_t spif_str_downcase(spif_str_t);
  81. extern spif_stridx_t spif_str_find(spif_str_t, spif_str_t);
  82. extern spif_stridx_t spif_str_find_from_ptr(spif_str_t, spif_charptr_t);
  83. extern spif_stridx_t spif_str_index(spif_str_t, spif_char_t);
  84. extern spif_cmp_t spif_str_ncasecmp(spif_str_t, spif_str_t, spif_stridx_t);
  85. extern spif_cmp_t spif_str_ncasecmp_with_ptr(spif_str_t, spif_charptr_t, spif_stridx_t);
  86. extern spif_cmp_t spif_str_ncmp(spif_str_t, spif_str_t, spif_stridx_t);
  87. extern spif_cmp_t spif_str_ncmp_with_ptr(spif_str_t, spif_charptr_t, spif_stridx_t);
  88. extern spif_bool_t spif_str_prepend(spif_str_t, spif_str_t);
  89. extern spif_bool_t spif_str_prepend_char(spif_str_t, spif_char_t);
  90. extern spif_bool_t spif_str_prepend_from_ptr(spif_str_t, spif_charptr_t);
  91. extern spif_bool_t spif_str_reverse(spif_str_t);
  92. extern spif_stridx_t spif_str_rindex(spif_str_t, spif_char_t);
  93. extern spif_bool_t spif_str_splice(spif_str_t, spif_stridx_t, spif_stridx_t, spif_str_t);
  94. extern spif_bool_t spif_str_splice_from_ptr(spif_str_t, spif_stridx_t, spif_stridx_t, spif_charptr_t);
  95. extern spif_str_t spif_str_substr(spif_str_t, spif_stridx_t, spif_stridx_t);
  96. extern spif_charptr_t spif_str_substr_to_ptr(spif_str_t, spif_stridx_t, spif_stridx_t);
  97. extern double spif_str_to_float(spif_str_t);
  98. extern size_t spif_str_to_num(spif_str_t, int);
  99. extern spif_bool_t spif_str_trim(spif_str_t);
  100. extern spif_bool_t spif_str_upcase(spif_str_t);
  101. SPIF_DECL_PROPERTY_FUNC_C(str, spif_stridx_t, size);
  102. SPIF_DECL_PROPERTY_FUNC_C(str, spif_stridx_t, len);
  103.  
  104. #endif /* _LIBAST_STR_H_ */
  105.